package com.huantai.common.util.secret;

import java.security.MessageDigest;

/**
 * 通用的加密工具类
 * 
 * @author Ma Chao
 * @version 2018年7月23日 下午3:23:28
 */
public class EncryptionUtil {
    private EncryptionUtil() {}

    /**
     * MD5加密
     * @throws Exception 
     */
    public static String MD5(Object content) throws Exception { // NOSONAR
        return encryption("MD5", content);
    }

    /**
     * SHA1加密
     * @throws Exception 
     */
    public static String SHA1(Object content) throws Exception { // NOSONAR
        return encryption("SHA-1", content);
    }

    /**
     * 通用加密方法
     * 
     * @param type 加密类型
     * @param content 要加密的数据
     * @return 加密后的字符串
     * @throws Exception
     */
    private static String encryption(String type, Object content) throws Exception { // NOSONAR
        MessageDigest md = MessageDigest.getInstance(type);
        md.update(content.toString().getBytes("UTF-8"));
        byte[] hash = md.digest();
        StringBuilder secpwd = new StringBuilder();
        for (int i = 0; i < hash.length; i++) {
            int v = hash[i] & 0xFF;
            if (v < 16)
                secpwd.append(0);
            secpwd.append(Integer.toString(v, 16));
        }
        return secpwd.toString();
    }
}
